package com.kexio.enterprise.observability.metrics.domain;

/**
 * 应用指标
 * 
 * @author Kexio
 * @since 1.0.0
 */
public class ApplicationMetrics {
    private long requestCount;
    private long errorCount;
    private double errorRate;
    private double averageResponseTime;
    private double maxResponseTime;
    private double minResponseTime;
    private double throughput;
    private int activeConnections;
    private int maxConnections;
    private long cacheHits;
    private long cacheMisses;
    private double cacheHitRate;

    // Getters and Setters
    public long getRequestCount() { return requestCount; }
    public void setRequestCount(long requestCount) { this.requestCount = requestCount; }
    
    public long getErrorCount() { return errorCount; }
    public void setErrorCount(long errorCount) { this.errorCount = errorCount; }
    
    public double getErrorRate() { return errorRate; }
    public void setErrorRate(double errorRate) { this.errorRate = errorRate; }
    
    public double getAverageResponseTime() { return averageResponseTime; }
    public void setAverageResponseTime(double averageResponseTime) { this.averageResponseTime = averageResponseTime; }
    
    public double getMaxResponseTime() { return maxResponseTime; }
    public void setMaxResponseTime(double maxResponseTime) { this.maxResponseTime = maxResponseTime; }
    
    public double getMinResponseTime() { return minResponseTime; }
    public void setMinResponseTime(double minResponseTime) { this.minResponseTime = minResponseTime; }
    
    public double getThroughput() { return throughput; }
    public void setThroughput(double throughput) { this.throughput = throughput; }
    
    public int getActiveConnections() { return activeConnections; }
    public void setActiveConnections(int activeConnections) { this.activeConnections = activeConnections; }
    
    public int getMaxConnections() { return maxConnections; }
    public void setMaxConnections(int maxConnections) { this.maxConnections = maxConnections; }
    
    public long getCacheHits() { return cacheHits; }
    public void setCacheHits(long cacheHits) { this.cacheHits = cacheHits; }
    
    public long getCacheMisses() { return cacheMisses; }
    public void setCacheMisses(long cacheMisses) { this.cacheMisses = cacheMisses; }
    
    public double getCacheHitRate() { return cacheHitRate; }
    public void setCacheHitRate(double cacheHitRate) { this.cacheHitRate = cacheHitRate; }
}
